package com.cristina.attention.utils;

import java.util.Objects;

/**
 * @author by superman
 */
public class OsUtil {

    /**
     * 操作系统名
     */
    private static String osName = System.getProperty("os.name").toLowerCase();

    /**
     * 文件分隔符
     * <pre>
     *     windows -> "\"(反斜杠)
     *     linux -> "/" (斜杠)
     * </pre>
     */
    private static String fileSeparator = System.getProperty("file.separator");

    /**
     * 用户当前工作目录
     */
    private static String userDir = System.getProperty("user.dir");

    /**
     * 获取操作系统名称
     *
     * @return
     */
    public static String getOsName() {
        return osName;
    }

    /**
     * 获取文件分隔符
     *
     * @return
     */
    public static String getFileSeparator() {
        return fileSeparator;
    }

    /**
     * 获取用户当前工作目录
     *
     * @return
     */
    public static String getUserDir() {
        return userDir;
    }

    /**
     * 判断是不是 linux 系统
     *
     * @return
     */
    public static boolean isLinux() {
        return osName.indexOf("linux") >= 0;
    }

    /**
     * 判断是不是 windows 系统
     *
     * @return
     */
    public static boolean isWindows() {
        return osName.indexOf("windows") >= 0;
    }

    /**
     * 判断是不是 macOs 系统
     *
     * @return
     */
    public static boolean isMacOS() {
        return osName.indexOf("mac") >= 0 && osName.indexOf("os") > 0 && osName.indexOf("x") < 0;
    }

    /**
     * 判断是不是 macOsX 系统
     *
     * @return
     */
    public static boolean isMacOSX() {
        return osName.indexOf("mac") >= 0 && osName.indexOf("os") > 0 && osName.indexOf("x") > 0;
    }

    public static boolean isBackSlant() {
        return Objects.equals("\\", fileSeparator);
    }

}
